﻿//import QtQuick 2.2
import QtQuick.Window 2.0
//import QtQuick.Controls 1.2
//import QtQuick.Controls.Styles 1.2
import QtQuick.Dialogs 1.1

import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4

Rectangle{
   visible: true;
   width:600;
   height: 480;
//   minimumWidth: 480;
//   minimumHeight: 380;

   BusyIndicator{
       id: busy;
       running: false;
       anchors.centerIn: parent;
       z: 2;
   }
   Text{
       id: stateLabel;
       visible: false;
       anchors.centerIn: parent;
       z:3;

   }

   Image{
       id: imageViewer;
       asynchronous: true; //异步
       cache: false;
       anchors.fill: parent;
       fillMode: Image.PreserveAspectFit;

       onStatusChanged: {
           if( imageViewer.status === Image.Loading){
               busy.running = true;
               stateLabel.visible = false;
           }
           else if(imageViewer.status === Image.Ready){
               busy.running = false;
           }
           else if(imageViewer.status === Image.Error){
               busy.running = false;
               stateLabel.visible = true;
               stateLabel.text = "error not load pic";
           }
       }
   }

   Button{
       id: openFile;
       text: "open";
       anchors.left: parent.left;
       anchors.leftMargin: 8;
       anchors.bottom: parent.bottom;
       anchors.bottomMargin: 8;

       style: ButtonStyle{
           background: Rectangle{
               implicitWidth: 70;
               implicitHeight:  25;
//               color: control.hoveced ? "red":"#a0a0a0";
               color: (control.hovered || control.pressed) ? "red" : "#888888";
               border.width: control.pressed ? 2:1;
               border.color: (control.hovered || control.pressed) ? "green" : "#888888";
           }
       }
       onClicked:  fileDialog.open();
       z:4;
   }

   Text{
       id: imagePathText;
       anchors.left: openFile.right;
       anchors.leftMargin: 8;
       anchors.verticalCenter: openFile.verticalCenter;
       font.pixelSize: 18;
   }

   FileDialog{
       id: fileDialog;
       title: "please choose a file";
       nameFilters: ["image File(*.jpg *.png *.git)"];
       onAccepted: {
           imageViewer.source = fileDialog.fileUrl;
           var imageFile = new String(fileDialog.fileUrl);
           imagePathText.text = imageFile.slice(8);
       }

   }
}
